#include <iostream>
#include <sstream>

#include "Tester.h"
#include "GeneradorDeTriangRectConAltDosBaseAreaConocida.h"
#include "GeneradorDeTriangRectConAltDosBaseLimiteCero.h"

using namespace std;

int main()
{
	double representacionBaseInicial, incrementoPorIteracion;
  	unsigned int cantidadIteraciones, precision;
	
	cout << "Ingrese la precisión: ";
	cin >> precision;
	cout << endl << "Ingrese la longitud de la altura del triangulo: ";
	cin >> representacionBaseInicial;
	cout << endl << "Ingrese el incremento por iteracion: ";
	cin >> incrementoPorIteracion;
	cout << endl << "Ingrese la cantidad de iteraciones: ";
	cin >> cantidadIteraciones;
	
	Tester tester;
	
	GeneradorDeTriangRectConAltDosBaseAreaConocida generadorAreaConocida
	(
		representacionBaseInicial,
		incrementoPorIteracion,
		cantidadIteraciones,
		precision
	);
	
	stringstream nombreArchivoAreaConocida;
	nombreArchivoAreaConocida << "area_conocida_p" << precision << "_i" << cantidadIteraciones;
	
	if (!tester.testear(generadorAreaConocida, nombreArchivoAreaConocida.str().c_str()))
	{
		return 1;
	}
	
	GeneradorDeTriangRectConAltDosBaseLimiteCero generadorLimiteCero
	(
		representacionBaseInicial,
		incrementoPorIteracion,
		cantidadIteraciones,
		precision
	);
	
	stringstream nombreArchivoLimiteCero;
	nombreArchivoLimiteCero << "limite_0_p" << precision << "_i" << cantidadIteraciones;
	
	if(!tester.testear(generadorLimiteCero, nombreArchivoLimiteCero.str().c_str()))
	{
		return 2;
	}
	
	return 0;
}

